﻿using UniFramework.Network;
using UniFramework.Singleton;

/**@description 框架层使用的各管理器单例的管理 */
public static class Framework
{
    
    // /**@description 资源是否懒释放，true时，只有收到平台的内存警告才会释放资源，还有在更新时才分释放,否则不会释放资源 */
    // static bool IsLazyRelease() {
    //     return false;
    // }
    
    // /**@description 资源释放管理 */
    // ReleaseManager releaseManger() {
    //     return Singleton.instance.get(ReleaseManager) as ReleaseManager;
    // }
    
    // /**@description 网络Service管理器 */
    // get serviceManager()
    // {
    //     // return Singleton.instance.get(ServiceManager) as ServiceManager;
    // }
    
    // /**@description 网络消息发送管理器 */
    // get senderManager() {
    //     return Singleton.instance.get(SenderManager) as SenderManager;
    // }
    //
    // /**@description 网络消息处理管理器 */
    // get handlerManager() {
    //     return Singleton.instance.get(HandlerManager) as HandlerManager;
    // }
    //
    // /**@description 日志 */
    // get logger() {
    //     return Singleton.instance.get(LoggerImpl) as LoggerImpl;
    // }
    //
    // /**@description 逻辑管理器 */
    // get logicManager() {
    //     return Singleton.instance.get(LogicManager) as LogicManager;
    // }
    //
    // /**@description 数据中心 */
    // get dataCenter() {
    //     return Singleton.instance.get(DataCenter) as DataCenter;
    // }
    //
    // /**@description 入口管理器 */
    // get entryManager() {
    //     return Singleton.instance.get(EntryManager) as EntryManager;
    // }
    //
    // get utils() {
    //     return Singleton.instance.get(Utils) as Utils;
    // }
    //
    // /**@description protobuf类型管理 */
    // get protoManager() {
    //     return Singleton.instance.get(ProtoManager) as ProtoManager;
    // }
    //
    // /**@description bundle管理器 */
    // get bundleManager() {
    //     return Singleton.instance.get(BundleManager) as BundleManager;
    // }
    //
    // /**@description 热更新管理器 */
    // get updateManager() {
    //     return Singleton.instance.get(UpdateManager) as UpdateManager;
    // }
    //
    // /**@description 常驻资源指定的模拟view */
    // get retainMemory(): any {
    //     return this.uiManager.retainMemory;
    // }
    //
    // /**@description 语言包 */
    // get language() {
    //     return Singleton.instance.get(Language) as Language;
    // }
    //
    // /**@description 事件派发器 */
    // get dispatcher() {
    //     return Singleton.instance.get(Dispatcher) as Dispatcher;
    // }
    //
    // /**@description 界面管理器 */
    // get uiManager() {
    //     return Singleton.instance.get(UIManager) as UIManager;
    // }
    //
    // /**
    //  * @description 本地仓库 
    //  * @deprecated 该接口已经弃用，请用使用storage替换
    //  * */
    // get localStorage() {
    //     return this.storage;
    // }
    //
    // /**@description 本地仓库 */
    // get storage() {
    //     return Singleton.instance.get(LocalStorage) as LocalStorage;
    // }
    //
    // /**
    //  * @description 资源管理器 
    //  * @deprecated 该接口已经弃用，请用使用asset替换
    //  * */
    // get assetManager() {
    //     return this.asset;
    // }
    //
    // /**@description 资源管理器 */
    // get asset() {
    //     return Singleton.instance.get(AssetManager) as AssetManager;
    // }
    //
    // /**
    //  * @description 资源缓存管理器
    //  * @deprecated 该接口已经弃用，请用使用cache替换
    //  * */
    // get cacheManager() {
    //     return this.cache;
    // }
    //
    // /**@description 资源缓存管理器 */
    // get cache() {
    //     return Singleton.instance.get(CacheManager) as CacheManager;
    // }
    //
    // /**
    //  * @description 对象池管理器 
    //  * @deprecated 该接口已经弃用，请用使用pool替换
    //  * */
    // get nodePoolManager() {
    //     return this.pool;
    // }
    //
    // /**@description 对象池管理器 */
    // get pool() {
    //     return Singleton.instance.get(NodePoolManager) as NodePoolManager;
    // }
    //
    // get http() {
    //     return Singleton.instance.get(HttpClient) as HttpClient;
    // }
    //
    // /**@description 小提示 */
    // get tips(): any {
    //     return null;
    // }
    //
    // /**@description 界面加载时的全屏Loading,显示加载进度 */
    // get uiLoading(): any {
    //     return null;
    // }
    //
    // /**@description websocket wss 证书url地址 */
    // get wssCacertUrl() {
    //     return "";
    // }
    //
    // get layout() {
    //     return Singleton.instance.get(LayoutManager) as LayoutManager;
    // }
    //
    // get canvasHelper() {
    //     return Singleton.instance.get(CanvasHelper) as CanvasHelper;
    // }
    //
    // /**
    //  * @description 区分平台相关处理
    //  */
    // get platform() {
    //     return Singleton.instance.get(Platform) as Platform;
    // }
    // /**@description 当前游戏GameView, GameView进入onLoad赋值 */
    // gameView: GameView | null = null;
    //
    // getGameView<T extends GameView>() {
    //     return <T>this.gameView;
    // }
    //
    // /**
    //  * @description 获取语言包 
    //  * 
    //  */
    // getLanguage<K extends string & keyof LanguageData["data"]>(key: K, params: (string | number)[] = [], bundle: BUNDLE_TYPE | null = null): LanguageData["data"][K] {
    //     if (!bundle) {
    //         bundle = Macro.BUNDLE_RESOURCES;
    //     }
    //     let configs: (string | number)[] = [];
    //     configs.push(`${Macro.USING_LAN_KEY}${bundle}.${key}`);
    //     configs.push(...params);
    //     return this.language.get(configs);
    // }
    //
    static void init() {
        // //引擎扩展初始化
        // CocosExtentionInit();
    }
    //
    // onLowMemory() {
    //     this.releaseManger.onLowMemory();
    // }
}